Distribution of I/O requests across multiple disk units

ABSTRACT

A storage system stores multiple copies of data on physical storage implemented, for example, with multiple disk units. Input/output read requests are received from host systems and distributed in a manner that allows parallel read operations to be conducted over the multiple disk units of the physical storage.

CROSS-REFERENCES TO RELATED APPLICATIONS

[0001] This is a continuation-in-part application of U.S. applicationSer. No. 09/619,000, filed Jul. 18, 2000, which is a continuation ofapplication Ser. No. 09/116,344, filed Jul. 16, 1998, now U.S. Pat. No.6,108,750, which is a continuation of application Ser. No. 08/868/075,filed Jun. 3, 1997, now U.S. Pat. No. 5,835,938, which is a continuationof application Ser. No. 08/355,274, filed Dec. 12, 1994, now U.S. Pat.No. 5,680,574, which is a continuation of application Ser. No.07/648,998, filed Jan. 31, 1991, now abandoned. The disclosure of theaforementioned U.S. application Ser. No. 09/619,000 (hereinafter,“Referenced Application”) is hereby incorporated by reference as iffully set forth herein.

BACKGROUND OF THE INVENTION

[0002] Present day hunger for data and data storage has given rise tocomputing complexes in which multiple data processing systems haveaccess to a single data warehouse that is often implemented by a complexof disk storage units. The growth of Internet use has fed this hunger,and added the requirement that the data be continuously available. Inorder to achieve this latter requirement, many database complexes anddata warehouses resort to such techniques as “mirroring” (i.e. usingredundant storage to maintain a copy of everything written to the mainstorage element), error correction of various types and the like.Redundant arrays of independent (or inexpensive) disks (RAID) is oneexample. Certain RAID configurations (“levels”) use data striping(spreading out blocks of each file across multiple disks) in order toprotect the data, correcting errors when encounter, but redundancy isnot used. This improves performance, but does not deliver faulttolerance. Other RAID levels (e.g., level 1) provide disk mirroring toadd data redundancy and thereby fault tolerance.

[0003] While these techniques operate well to provide a measure of faulttolerance and, therefore, some continuous availability of the storeddata, they can be overloaded when facilities employing these techniquesmust respond to a large volume of requests for data.

[0004] Thus, although continuous availability is now a feature of manydatabase complexes and data warehouse configurations, they still canpresent a performance impediment by limiting the number of accesses thatcan be made at any particular moment in time.

SUMMARY OF THE INVENTION

[0005] The present invention is directed to a disk storage system with astorage control unit capable of receiving and simultaneously respondingto multiple input/output (I/O) read requests from multiple users of thestorage system.

[0006] Broadly, the invention is a disk storage system in which thestorage control unit operates to control data transfers (i.e., reads andwrites) between a number of host systems and a physical storage formedby a number of disk storage units. The storage control unit ispreferably constructed to include multiple processor units (i.e.,microprocessors), providing a platform that allows multiple processes tohandle a number of simultaneous data transfers between the physicalstorage and the host systems. The control unit includes memory in whichare maintained data structures that implement “logical” storage,comprising a number of logical storage units to which I/O requests, bothreads and writes, are made by the host systems. Each logical storageunit has a designated corresponding physical storage area in thephysical storage. Data is written to a predetermined one of the logicalstorage units (the “master” logical unit), and to its correspondingphysical storage area. That data is also copied to the other logicalstorage units (the “slave” logical storage units), and through them totheir corresponding physical storage areas. Thereby, multiple copies ofthe data is made available.

[0007] According to one embodiment of the invention, I/O read requestsfrom the host systems are received and assigned to one of the logicalstorage units and, thereby, to the corresponding physical disk storage.Selection of a logical storage unit for assignment of an I/O readrequest is preferably made in a manner that distributes I/O readrequests among the logical storage units and, thereby, the correspondingphysical storage areas. For example, selection may be made on around-robin basis, or any other basis that achieves a desireddistribution among the logical storage units. In this manner, readrequests are distributed over the areas of physical storage containingthe multiple copies of the data requested.

[0008] In an alternate embodiment of the invention, I/O read requestsare not immediately assigned to a logical unit. Rather, all the logicalunits are mapped to their matching physical discs maintaining the copiesof the data of the I/O read request, and those physical disk storageareas examined for selection. For example, the physical disk with thesmallest number of pending requests may be selected, and the I/O readrequest is assigned to the logical storage unit corresponding to thatselected physical storage.

[0009] In a further embodiment of the invention, when an I/O readrequest is received, a number of the logical units, less than all, aremapped to their corresponding physical storage containing the requesteddata. The physical disks making up that physical storage are thenreviewed to select, for example, the one with a small backlog of pendingrequests, and the I/O read request is assigned to the logical storageunit corresponding to the selected physical storage.

[0010] A number of advantages should now be evident to those skilled inthis art. Rather than forming a bottleneck by having only a single datastream from a storage facility to multiple hosts, the storage system ofthe present invention provides multiple, parallel data paths betweenmultiple processors and physical storage. This, in turn, provides almostinstantaneous access to data. In addition, fault tolerance andcontinuous availability is provided.

[0011] These, and other advantages and aspects of the invention willbecome apparent to those skilled in the art upon reading of thefollowing description of the specific embodiments, which should be takenin conjunction with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

[0012]FIG. 1 is a simplified block diagram illustrating the storagecontrol system of the present invention for distributing I/O readrequests from a number of host processor systems over multiple copies ofdata maintained by physical storage;

[0013]FIG. 2 is a diagram of the logical disk group table, a one of thedata structures used to implement a group of logical disk storagedevices;

[0014]FIG. 3 is a logical disk table, identifying, for the correspondinglogical storage device, the particulars of that device;

[0015]FIG. 4 shows the entry containing the processing request numberfor a physical disk of FIG. 1, indicating the backlog of I/O requestspending on the corresponding physical disk;

[0016]FIGS. 5-8 are flow diagrams illustrating the steps taken byvarious of the processes used to respond to an I/O read request totransfer requested data from physical storage to the host systemrequesting that data;

[0017]FIG. 9 is a flow diagram showing the steps taken, according to oneembodiment of the invention, to distribute read requests over thephysical storage of FIG. 1;

[0018]FIG. 10 is a flow diagram showing the steps taken, according toanother embodiment of the invention, to distribute read requests overthe physical storage of FIG. 1; and

[0019]FIG. 11 is a flow diagram showing the steps taken, according toyet another embodiment of the invention, to distribute read requestsover the physical storage of FIG. 1.

DESCRIPTION OF THE SPECIFIC EMBODIMENTS

[0020] Turning now to the Figures, and for the moment specifically FIG.1, there is illustrated a storage system, designated generally with thereference numeral 10 for handling I/O data communication between anumber of host systems 12 (12 ₁, 12 ₂, . . . , 12 _(k)) and a physicalstorage 14, comprising disk units 16 (16 ₁, 16 ₂, . . . , 16 _(n)). Thestorage system 10 includes a controller unit 20, with associatedmemory/cache unit 22, operating to control data transfers between thehost system 12 and the physical storage 14 (i.e., disk storage units16). The controller 20 is preferably implemented by a number ofindividual processor elements (e.g., microprocessors) or similar devicesin order to provide parallel processing, so that multiple differentprocesses can be running simultaneously. For example, the controller 20may utilize a symmetric multiprocessing (SMP) architecture to exploitthe power of multiple processor units through distribution of theoperating system to thereby balance the system load of the SMPconfiguration. In addition, an SMP configuration can reduce downtimebecause the operating system can continue to run on remaining processorunits in the event one the processor units should fail. Alternatively, asingle processing element may be used in time-share fashion to providevirtual parallel processing.

[0021] Maintained in the memory/cache unit 22 are data structures thatimplement representations of logical storage “coupling groups,” eachcoupling group comprising one or more logical volumes. While there canbe any practical number of logical coupling groups, only one, couplinggroup 30, is shown in FIG. 1 for the sake of simplicity. However, itshould be understood that the discussion of the coupling group willapply to any other coupling group that may represented by datastructures in the memory/cache unit 22.

[0022] As FIG. 1 illustrates, a logical coupling group 30 compriseslogical volumes 32 (32 ₁, 32 ₂, . . . 32 _(m)), the number of which willtypically be less than or equal to the number of physical disk units 16,i.e., m≦n. Logical volume addresses map to addresses of the physicalstorage 14. As will be seen, a logical volume 32 can map, on aone-to-one basis, to one or more of the disk units 16 of the physicalstorage 14, or to a portion of a disk unit 16.

[0023] In this embodiment, one of the logical volumes 32 ₁ is designatedthe “master” volume. All I/O data read or write requests made by a hostsystem 12 are assumed to be directed to the master logical volume 32 ₁The remaining logical volumes 32 (32 ₂, . . . , 32 _(m)) are designated“slave” volumes.

[0024] I/O read or write requests that issue from the host systems 12will include an address at which data is to be written (if an I/O writerequest) or from which data is to be read (if an I/O read requests). I/Owrite requests use the address contained in the request to map to acorresponding address of physical storage 14, and the data then iswritten to the master logical volume 32 ₁. In addition, the data of thereceived I/O write request is also passed to each of the logical volumes32 ₂, . . . , 32 _(m) of the logical coupling group 30, and similarlymapped and written to the areas of physical storage 14 corresponding tothose logical slave volumes. Thus, multiple copies of data written tothe storage system 10 are maintained and made available by the physicalstorage 14 for use by the present invention.

[0025] I/O read requests are processed, according to the presentinvention, in a manner that allows multiple requests to be handled inparallel. A received I/O read request is ultimately assigned to one ofthe logical volumes 32 for retrieval of the requested data from thephysical storage corresponding to that logical slave volume. The presentinvention provides various methods for distributing the read requestsamong the logical volumes 32 for parallel handling.

[0026] There are three variations of load distribution according to thepresent invention. An initial load distribution method will first assignan incoming I/O read request to one logical volume 32. For example, around-robin algorithm may be used for such assignment, although it willbe evident to those skilled in this art that other selection methods maybe employed. The address of the data contained in the I/O read requestwill be mapped from the selected logical volume 32 to an address withinits corresponding physical storage. The data requested by the I/O readrequest will then be read from the physical disk 16 of the physicalstorage corresponding to the selected logical volume, and returned tothe host system 12 that originated the request.

[0027] In a second variation, the method of the present invention willfirst perform the logical-physical mapping of all logical volumes 32 toobtain all the addresses of the data sought by the request in thephysical storage 14. Then, a determination is made of which physicaldisk unit should be selected. For example, that selection may be basedupon how many outstanding requests each physical disk has, and the I/Oread request then assigned to the logical volume 32 corresponding tothat selected disk unit 16.

[0028] Finally, according to the third variation of the presentinvention, an incoming I/O read request will again initiate alogical-physical mapping in order to obtain corresponding physicaladdresses of the data sought by the request in the physical storage 14.This time, however, less than the maximum number of logical volumes 32,for example only two of the logical slave volumes, are mapped to theircorresponding physical storage. Again, as with the second variation,(for example, that selection may be based upon how many outstandingrequests each physical disk has), a physical disk is selected, and theI/O read request assigned to the logical slave volume 32 correspondingto such selected physical disk 16.

[0029]FIGS. 2 and 3 illustrate the data structures used to establish therepresentative logical volumes 32. Turning first to FIG. 2, a logicalcoupling group table 40 is shown. As indicated above, there can be anumber of logical groups (the coupling groups), although only one,logical group 30, is shown in FIG. 1. There would be, however, aseparate logical coupling group table 40 for each the logical couplinggroup to be implemented. The logical coupling group table 40 shown inFIG. 2 corresponds to the coupling group 30 of FIG. 1. As FIG. 2 shows,a first entry 42 identifies the number of logical volumes 32 in theparticular coupling group. The next entry 44 identifies the address ofthe master logical volume 32 ₁. Entry 44 is followed by a number ofentries 46 (46 ₂, . . . , 46 _(m)), each containing the address of acorresponding slave volume 32 ₂, . . . , 32 _(m). When an I/O readrequest is received, the address contained in the request will be theaddress of the target master volume 32 ₁ If, however, there are morethan one logical coupling groups, the coupling group tables 40corresponding to each of those coupling groups will be searched withtarget address of a received I/O read request to find the master logicalvolume identified in the request.

[0030] Referring now to FIG. 3, there is shown a logical volume table 50with information describing the makeup of a logical volume. There will alogical volume table 50 for each of the logical volumes 32. A firstentry 52 of the logical volume table 50 identifies the mapping type usedfor storing data of the logical volume on its corresponding physicalstorage. For example, the mapping type may be a RAID 1 or a RAID 5mapping, or any other mapping type. Entry 54 identifies the totalcapacity of the logical volume, as implemented by its correspondingphysical storage 14, and entry 56 identifies the number of physical diskunits that implement the logical volume 32 to which the table 50corresponds.

[0031] Following the entry 56 are one or more entries 60. There will beone entry 60 for each of the number of physical disks that correspond tothe logical volume of the table 50. Each of the entries 60 will havethree fields 64, 66, and 68, respectively identifying the address of thedisk unit 16 used by the logical volume, the start, and end, of thephysical block to which the corresponding logical volume is mapped.

[0032]FIG. 4 shows a physical disk table 70. There will be a physicaldisk table 70 for each one of the physical disk units 16. The physicaldisk table 70 has only one entry 72, identifying the number of requeststhen pending and/or then being processed by the disk unit 16 to whichthe table 70 pertains.

[0033] Turning now to FIGS. 5-8, illustrated are the four processes,running on the multiple microprocessors that make up the controller 20,for handling the transfer of data in response to read requests issued bythe host systems 12. There are a number of sets of the processes shownin FIGS. 5-8 to make available parallel data transfer operations betweenthe processor systems 12 and the physical storage 14.

[0034] Turning first to FIG. 5, the flow diagram 40 for a read requestprocess used in connection with the present invention is illustrated.The read request process operates to receive an I/O read request from ahost system 12, determine whether the requested data may be in thememory/cache unit 22 or whether physical storage 14 must be accessed toretrieve the data, and pass the request to the appropriate processdepending upon the determination made. As FIG. 5 shows, the read requestprocess will receive, at step 82, the I/O read request. It will then, instep 84, make a determination of the location of the requested data,i.e., whether contained in the memory/cache unit 22 or not in which caseit must be retrieved from physical storage 14). If so, step 84 is leftin favor of step 86 in which the request will be passed to the host readtransfer process 90 (FIG. 6), and terminate at step 88. If, however,step 24 determined that the requested data is not located in thememory/cache unit 22, step 84 will be left in favor of step 87 in whichthe I/O read request is passed to a load distribution process, describedmore fully below, for accessing physical storage 14 (i.e., one of thedisk units 16) for the data.

[0035] Assuming that the requested data is in the memory/cache unit 22,step 86 of the read request process 80 will pass the request to the hostread transfer process, illustrated by the flow diagram 90 is FIG. 6.There, at step 92, the host read transfer process will execute atransfer of the data to the requesting host by reading the data from thememory/cache unit 22, and transfer it to the requesting host system 12,terminating at step 94.

[0036] On the other hand, should the requested data be found in step 84of the read request process to not be contained in the memory/cache unit22, the controller 20 will invoke a load distribution process to selectone of the logical units 32, and thereby a corresponding physical diskunit 16, to read the data. When a physical disk unit is finallyselected, the read request disk issue process, illustrated by the flowdiagram 100 shown in FIG. 7, is employed. The read request disk issueprocess begins with step 102 by incrementing the processing requestnumber contained in the entry 72 of the physical disk table 70 (FIG. 4)to indicate that the selected disk unit 16 is processing an additionalrequest. Step 102 of the read request disk issue process is thenfollowed by step 104 in which the read request is issued to the selectedphysical disk 16. The read request disk issue process then terminateswith step 106.

[0037] The selected disk unit 16 receiving the read request sent in step104 of the read request disk issue process 100 will respond with thenecessary preparations for reading the requested data and issue aninterrupt to the controller 20 to indicate that the data is now readyfor transfer, as is conventional. This will invoke the disk readtransfer process, the flow diagram 110 of which is shown in FIG. 8. Thedisk read transfer process, upon receipt of the interrupt indicatingdata ready by a disk unit 16, will, at step 112, transfer the requesteddata from the selected disk unit 16 to the memory/cache unit 22. At step114, the entry 70 containing the processing request 72 is decrement toindicate that the particular disk unit 16 has completed a pendingrequest. Then, in step 116, the disk read transfer process 110 willtransfer the data from the memory/cache unit 22 to the requesting hostprocessor system 12, and terminate at step 118.

[0038] As indicated above, data is written by a host system 12 tostorage system 10 by addressing the master logical unit 321. That datais then mapped from the master logical volume 32, to its correspondingphysical storage 14, i.e., a disk unit or disk units 16. In addition, asalso indicated above, that data is copied to each of the slave logicalunits 32 ₂, . . . 32 _(m) of the coupling group 30, and thereby to thecorresponding disk units 16. Thus, multiple copies of data written tothe storage system 10 provide fault tolerance and continuous dataavailability. In addition, the availability of multiple copies forms thebasis of the load distribution methods of the present invention. I/Oread requests that are received are distributed among the logical units32 of the logical coupling group 30. A first embodiment of the loaddistribution process 120, according to one embodiment of the presentinvention, is broadly illustrated by the flow chart of FIG. 9.

[0039] The load distribution process 120 is called by step 87 of theread request process 80 (FIG. 5) when the data of an I/O read request isnot found in the memory/cache unit 22. When called, the loaddistribution process 120 begins at step 122 by assigning the I/O readrequest to one of the logical units 32 (32 ₁, . . . , 32 _(m)). Theassignment can be any method of selection or arbitration such asprearranged priorities as to which logical slave unit received a nextI/O read request or other classic arbitration techniques or a“round-robin” technique. The round-robin technique involves assigningpriorities according to a predetermined order among the logical units32. However determined, the load distribution process 120 will then moveto step 124 to execute a logical/physical mapping of the selectedlogical unit 32 to its corresponding physical disk unit 16, employingthe information of the logical volume table 50 (FIG. 3).

[0040] The load distribution process of flow diagram 120, having locatedthe data in physical storage 14, will then, in step 126, pass the I/Oread request to the read request disk issue process 100 (FIG. 7) whichwill ultimately result in the requested data being returned to therequesting processor system 12 as described above.

[0041] The load distribution process 120 then ends at step 128.

[0042]FIG. 10 illustrates, in flow diagram form, an alternate loaddistribution process 130. As before, the load distribution process 130will be called when it is determined, by step 84 of the read requestprocess 80 (FIG. 5) that the data of an I/O read request is not locatedin the memory/cache unit 22. Accordingly, step 84 is left in favor ofstep 87 which will pass the I/O read request to the load distributionprocess 130 where, at step 132, a logical/physical mapping of alllogical units 32 (32 ₁, . . . 32 _(m)) of the logical coupling group 30is performed. This will obtain the addresses of the physical storage 14,corresponding to each of the logical units 32, where at the requesteddata resides.

[0043] With the physical storage addresses now available, the loaddistribution process 130, at step 134, will then, for each of the diskunits 16, check the corresponding entry 70, examining the processingrequest 72 for each. Then, in step 135, the load distribution process130 will select that physical disk unit having the lowest processingrequest 72 and allocate the I/O read request.

[0044] With the physical disk unit 16 so identified, thatidentification, together with the I/O read request is then passed to theread request disk issue process 100 (FIG. 7) to initiate the transfer ofthe data from the physical storage 14 to the requesting processor system12, as described above.

[0045] Finally, the load distribution process 130 will terminate at step138.

[0046] A still another embodiment of the load distribution process ofthe present invention is illustrated in FIG. 11 as load distributionprocess 150. As shown, the load distribution process 150 begins withstep 152 when the I/O read request is passed thereto by step 87 of theread request process 80 (FIG. 5). In step 152, the load distributionprocess 150 will select one or more of the logical units 32 of couplinggroup 30. The selected logical units 32 are, in step 154, mapped totheir corresponding physical units 16 of physical storage 14.

[0047] Then, in step 156, the load distribution process 150 will accessthe entries 70 corresponding to each of the selected physical disks 16,to obtain each of their processing request 72. In step 160, comparingthe processing request 72 for each of the physical disk units 16 to oneanother, one (e.g., the one with the lowest number) will be selected.

[0048] Step 162 checks the processing request 72 of the selectedphysical disk 16 to determine if the “load” of the selected physicaldisk is appropriate; that is, if the processing request 72 is within apredetermined parameter (e.g., what ?). If so, step 162 will exit infavor of step 164 in which the load distribution process 150 will passthe I/O read request to the read request disk issue process 100 (FIG. 7)in order to access the data and initiate the steps necessary to passthat data to the requesting processor system 12. The load distributionprocess 150 will then terminate at step 166.

[0049] If, however, step 162 determines that the load condition of theselected physical disk unit 16 is not within an acceptable parameter,step 162 will be exited in favor of determining, in step 170, whether ornot a less restrictive load condition is needed. If so, in step 172, theload condition restriction is made more liberal, and the loaddistribution process 150 returns to step 152 to again locate the data ona physical disk whose load is now within the modified load conditionparameter.

[0050] Similarly, if it is determined in step 170 that a lessrestrictive load condition is not needed, step 170 is left to return theload distribution process 150 to step 152 to again select a physicaldisk.

What is claimed is:
 1. A method of respectively reading and writing datato and from a plurality of physical disk units in response toinput/output (I/O) requests therefor from a host computing systemcomprising at least one processor unit, the method including the stepsof: establishing at least one logical disk group having a number oflogical disk elements; mapping each of the number of logical diskelements to a corresponding one or more of the physical disk units, eachof the physical disk unit carrying the same data; receiving from thehost computing system an I/O read request for data to select a one ofthe number of logical elements; accessing the physical disk unitcorresponding to the selected one logical disk to access for the data;and transferring the accessed data to the host computing system.
 2. Themethod of claim 1, including the step of identifying a predetermined onof the logical disk elements as a master logical disk element; andselecting the master logical disk element for all I/O write requests towrite data.
 3. The method of claim 2, including the step of copying datawritten to the one of the physical disk units corresponding to themaster logical disk element to the other of the plurality of physicaldisk units.
 4. The method of claim 1, wherein the selecting stepincludes selecting the one of the logical disk element on a round robinbasis.
 5. The method of claim 1, wherein the receiving step includes thestep of determining present usage of each one of the number of physicaldisks having the data desired by the I/O read request to select a one ofthe physical disk units that is least busy.
 6. A method of control ofreading and writing data to and from a plurality of physical disk unitsin response to input/output (I/O) requests therefore from a hostcomputing system comprising at least one processor unit, the methodincluding the steps of: establishing at least one logical disk grouphaving a number of logical disk elements, each of the logical diskelements corresponding to a respective one of the logical; mapping eachof the number of logical disk elements to a corresponding one or more ofthe physical disk units, each of the physical disk unit carrying thesame data; receiving from the host computing system an I/O read requestfor data to select a one of the number of logical elements; accessingthe physical disk unit corresponding to the selected one logical disk toaccess for the data; and transferring the accessed data to the hostcomputing system.
 7. The method of claim 6, wherein the receiving stepincludes the steps of: first determining a number of requests pendingfor each of the plurality of physical disk units; then, selecting a oneof the plurality of physical disk units based upon the determining step.8. A method of distributing I/O read requests for data across physicalstorage having multiple copies of the data, comprising the steps of:establishing a plurality of logical storage volumes; establishing acorrespondence between predetermined ones of the logical volumes andeach of the multiple copies of the data; receiving an I/O read requestfor data; assigning the I/O read request to a one of the plurality oflogical volumes; reading the data from the one of the multiple copies ofthe data corresponding to the assigned logical storage volume from thephysical storage.
 9. The method of claim 8, wherein the assigning stepincludes the step of assigning the I/O read request on a round-robinbasis.
 10. The method of claim 9, wherein the assigning step includesthe steps of: first performing a logical-physical mapping to determinewhich logical volumes correspond to which of the multiple copies of thedata; selecting one of the multiple copies of the data; assigning theI/O read request to the one of the plurality of logical volumescorresponding to the selected one of the multiple copies.
 11. The methodof claim 10, wherein the multiple copies of the data are distributedacross a number of physical storage units, and the selecting stepincludes the step of selecting one physical storage unit having at leastone of the multiple copies of data, and assigning the I/O read requestto the logical volume corresponding to one of the multiple copies ofdata.
 12. The method of claim 11, wherein the number of physical storageunits have outstanding requests to process, and the selecting stepincludes selecting a one of the number of the physical storage unitsthat has a smallest number of outstanding requests to process.
 13. Themethod of claim 8, wherein the assigning step includes assigning the I/Oread request to one of a chosen few of the plurality of physicalvolumes.
 14. The method of claim 13, wherein the multiple copies of thedata are distributed across a number of physical storage units, and theassigning step includes the steps of: selecting the physical storageunit having a small number of I/O requests to service.